The Imperative and Functional Programming Paradigm

نویسندگان

  • Henk Barendregt
  • Giulio Manzonetto
  • Rinus Plasmeijer
چکیده

In Turing (1937) a characterization is given of those functions that can be computed using a mechanical device. Moreover it was shown that some precisely stated problems cannot be decided by such functions. In order to give evidence for the power of this model of computation, Turing showed in the same paper that machine computability has the same strength as definability via λ-calculus, introduced in Church (1936). This model of computation was also introduced with the aim to show that undecidable problems exist. Turing Machine computability forms a very simple model that is easy to mechanize. Lambda calculus computability, on the other hand, is a priori more powerful. Therefore it is not obvious that it can be executed by a machine. As Turing showed the equivalence of both models also λ-calculus computations can be performed by a machine and also Turing Machine computations are powerful. This gave rise to the combined Church-Turing Thesis The notion of intuitive computability is exactly captured by λ-definability or by Turing computability. Computability via Turing machines gave rise to Imperative Programming. Computability described via λ-calculus gave rise to Functional Programming. As imperative programs are more easy to run on hardware, this style of software became predominant. We present major advantages of the functional programming paradigm over the imperative one, that are applicable, provided one is has the mental capacity to explicitly deal with simple abstractions.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Blending the Logic Paradigm into C++

The Logic paradigm (LP) provides a powerful programming model that has been underrepresented in mainstream programming as compared to the object-oriented, functional and imperative paradigms. Lot of work can be cited in the space of integrating logic into functional programming or the functional into imperative paradigm but relatively less has been written about integrating logic programming in...

متن کامل

Bachelor Degree Project Comparing functional to imperative Java

Java has recently become a multi paradigm language, with the functional paradigm now made available alongside the traditional, imperative, one. Programming in the functional paradigm may be considered complicated or hard to read, and there may be concerns that the code it produces may become hard to maintain because of complexity or readability issues. On the other hand, proponents of the funct...

متن کامل

Implementing Algebraic Dynamic Programming in the Functional and the Imperative Programming Paradigm

Algebraic dynamic programming is a new method for developing and reasoning about dynamic programming algorithms. In this approach, so-called yield grammars and evaluation algebras constitute abstract specifications of dynamic programming algorithms. We describe how this theory is put to practice by providing a specification language that can both be embedded in a lazy functional language, and t...

متن کامل

Picat: A Logic-based Multi-paradigm Language

Picat is a new and interesting programming language, combing many different and exciting programming paradigms: logic programming, imperative programming, constraint programming, functional programming, tabling, and planning. This paper gives a personal discussion of some of Picat’s features with several code examples.

متن کامل

Master’s Thesis Proposal: Framework for Formal Verification of Functional Reactive Systems

Functional reactive programming (FRP) is an emerging paradigm which allows the management of input/output and state within the confines of a purely functional language. The functional nature of FRP promises to make formal verification of functional reactive systems more tractable than that of their imperative counterparts. I propose to substantiate this claim by formally modeling FRP systems an...

متن کامل

A Note on three Programming Paradigms

This paper is about a puzzle to be solved in three programming paradigms: logic, functional and imperative. It can be considered as a case study of algorithm inversion, since we start with logic algorithm, that answers the question “Is balancing M times sufficient for detecting a single fake in a set of coins?”, and finishes with imperative algorithm, that effectively computes the minimal numbe...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2011